/**
 * @ClassName Test
 * @Description 方法的使用
 * @Author 李明忠
 * @Date 2025/4/23 16:08
 * @Version 1.0
 */
@SuppressWarnings("all")
public class Test {
    /**
     * 4不允许返回类型和接收类型不相干
     * @return
     */
    public static boolean test6(){
        return true;
    }
    /**
     * 接收返回值4
     * @param args
     */
    public static void main(String[] args) {
        //测试不允许返回类型和接收类型不相干
//        int num = test6();
    }
    /////////////////////////////////////////////////////////
    /**
     * 3测试返回类型强制转为接收类型
     * @return
     */
    public static double test5(){
        return 10.0;
    }
    /**
     * 接收返回值3
     * @param args
     */
    public static void main6(String[] args) {
        //测试返回类型强制转为接收类型
        int num = (int)test5();
    }
    ////////////////////////////////////////////////////////////////
    /**
     * 2测试返回类型自动转为接收类型
     * @return
     */
    public static short test4(short num1,short num2){
        short num = (short)(num1 + num2);
        //注意：short之间的运算会自动转为int来进行运算
        return num;
    }
    /**
     * 接收返回值2
     * @param args
     */
    public static void main5(String[] args) {
        //测试返回类型自动转为接收类型
        short num1 = 10;
        short num2 = 20;

        int num = test4(num1,num2);
        //int类型 接收 short类型 ==>发生自动类型转换

        System.out.println(num);//30
    }
    //////////////////////////////////////////////////////////////////////////////
    /**
     * 1测试返回值类型与接收类型一致
     * @return
     */
    public static int test3(int num1,int num2){
        int num = num1 + num2;
        return num;
    }
    /**
     * 接收返回值1
     * @param args
     */
    public static void main4(String[] args) {
        //测试返回值类型与接收类型一致
        int num1 = 10;
        int num2 = 20;

        int num = test3(num2,num1);

        System.out.println(num);//30
    }
    /////////////////////////////////////////////////////////////////////////////////////
    /**
     * 测试函数：没返回值
     */
    public static void test2(){
        System.out.println("没返回值");
    }
    /**
     * 函数测试1：有返回值的时候
     * @return
     */
    public static int test1(){
        int n = 10;
        return n;
        /**
         * 注意有返回值的时候return后面不能写代码
         * 因为编译器认为return后面的语句是永远执行不到的
         * 你写山是没有意义的
         */
//        System.out.println("此处不要写代码，因为在Java中你这样写是没意义的");
    }
    public static void main3(String[] args) {
        test1();
    }
    public static int test(){
        int a = 10;
        int b = 20;
        return a + b;
    }
    public static void main2(String[] args) {
        System.out.println(test());
    }
//    public static int test(){
//        return 10.0;//不可以是类型不匹配哦
//    }
    /**
     * 求和函数
     * @param a
     * @param b
     * @return
     */
    public static int sum(int a ,int b){
        //方法体
        return a + b;
    }
    /**
     * 方法的引入
     * @param args
     */
    public static void main1(String[] args) {
        //完成100+200、500+300、400+45

        //100+200
        int num1 = 100;
        int num2 = 200;
        int num3 = num1 + num2;
        System.out.println(num3);//300

        //500+300
        int num4 = 500;
        int num5 = 300;
        int num6 = num4 + num5;
        System.out.println(num6);//800

        //400+45
        int num7 = 400;
        int num8 = 45;
        int num9 = num7 + num8;
        System.out.println(num9);//445
    }
}
